[SORACOM SDK for Ruby]SIMの使用を開始/休止してみた

[SORACOM SDK for Ruby]SIMの使用を開始/休止してみた

Clock Icon2015.11.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

SORACOM SDK for RubyでSIMの使用を開始/休止を切り替えられるかを試してみました。結論からするとできたのですが、SDKから実行する例がネット上には見当たらなかったので(私が検索できなかった可能性もありますが)、どのようにSDKの該当機能を見つけたかも含めて書きたいと思います。

SDKより必要な機能を探す

SORACOM SDK for Rubyについて

SDKについて、公式ページに以下の様な記述があります。

SORACOM SDK for Ruby は、株式会社ソラコム の提供する IoT プラットフォームの API を Ruby プログラムからコールするためのライブラリとなります。

「SORACOM SDK for Ruby」より

なのでSDKより呼び出すAPIがあると考え、APIのリファレンスを見てみました。

API リファレンス

公式のAPI リファレンスは以下になります。
API Reference

見てみると、今回やりたいことを実現できそうなAPIがありました。 soracom-sdk-for-ruby-sim-activate-deactivate-api

このAPIを呼び出すメソッドをSDKから探せばいいことになります。

SDKのメソッド

ということでSDKより上記のAPIを呼び出すメソッドを探します。APIと同じ様な名前だろうと検討を付け、前回紹介したSDKのクライアントオブジェクトのメソッドを探すと、以下の様なメソッドが見つかりました。

client.activate_subscriber(imsis)
client.deactivate_subscriber(imsis)

サンプルプログラム

使用するSDKのメソッドを見つけたので、サンプルプログラムを作成しました。

SIMを開始するサンプル

require 'soracom'
require './secret_settings'

client = Soracom::Client.new(email: SecretSettings.soracom.email, password: SecretSettings.soracom.password)

imsis = []
client.list_subscribers.each do |sim|
  imsis << sim['imsi']
end

client.activate_subscriber(imsis)

puts 'subscribers activate.'

前回同様、4行目でソラコムのクライアントを作成します。そのクライアントの「activate_subscriber」を呼び出すのですが、今回はSIMを特定するIMSIを配列で渡すようです(一つのIMSIを渡すこともできるようですが)。11行目で該当メソッドを呼び出し、SIMを使用開始しています。

このソースを実行するとユーザコンソールは以下のようになり、SIMが使用開始されたことが分かります。 soracom-sdk-for-ruby-sim-activate-deactivate-activate

SIMを休止するサンプル

require 'soracom'
require './secret_settings'

client = Soracom::Client.new(email: SecretSettings.soracom.email, password: SecretSettings.soracom.password)

imsis = []
client.list_subscribers.each do |sim|
  imsis << sim['imsi']
end

client.deactivate_subscriber(imsis)

puts 'subscribers deactivate.'

こちらは「deactivate_subscriber」を呼び出している以外は、開始とほぼ同じです。このソースを実行してユーザコンソールを確認すると以下のようになります。 soracom-sdk-for-ruby-sim-activate-deactivate-deactivate

まとめ

以上でSORACOM SDK for RubyよりSIMの使用を開始/休止することができました。SDKにてやりたいことのサンプルが見つからなかった場合は

  • APIより該当の機能を見つけること
  • SDKよりAPIを呼び出しいるメソッドを見つけること

を検討してみてもいいかもしれません。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.